home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 4 / Gold Medal Software - Volume 4 (Gold Medal) (1994).iso / os2 / svd110.arj / SVDISK.DOC < prev    next >
Text File  |  1994-08-28  |  42KB  |  1,136 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.                                                       Super Virtual Disk
  9.  
  10.                                Swappable/Lockable/Removable Virtual Disk
  11.                                                                 for OS/2
  12.  
  13.                                                                   SVDISK
  14.                                                             Version 1.10
  15.                                                                 08/28/94
  16.  
  17.  
  18.  
  19.                                   TABLE OF CONTENTS
  20.        _________________________________________________________________
  21.  
  22.             1.0. INTRODUCTION TO Super Virtual Disk ..................3
  23.                  1.1. What is Super Virtual Disk? ....................3
  24.                  1.2. Features of SVDisk .............................3
  25.             2.0. SYSTEM REQUIREMENTS .................................4
  26.             3.0. COPYRIGHT NOTICE ....................................4
  27.             4.0. WARRANTY ............................................4
  28.             5.0. COST OF Super Virtual Disk ..........................4
  29.             6.0. CONTENTS OF THIS PACKAGE ............................5
  30.             7.0. INSTALLATION ........................................6
  31.                  7.1. Quick start ....................................6
  32.                       7.1.1 Manual installation ......................6
  33.                       7.1.2 Drive letter arrangement with CD-ROM
  34.                       drive ..........................................7
  35.                  7.2. SVDisk.sys parameters ..........................7
  36.             8.0. CONTROLLING Super Virtual Disk ......................9
  37.                  8.1. Super Virtual Disk Control help screen .........9
  38.                  8.2. Options for SVDC ...............................10
  39.                  8.3. PM Super Virtual Disk Control ..................12
  40.                  8.4. Formatting SVDisk as HPFS ......................12
  41.                       8.4.1 HPFS Diskettes ...........................14
  42.                       8.4.2 HPFS386 on IBM LAN Server Advanced
  43.                       Edition ........................................16
  44.                  8.5. Diskette boot bypass using VFloppy .............16
  45.             9.0. PROGRAMMING INFORMATION .............................17
  46.             10.0. EXAMPLES ...........................................18
  47.                  10.1. Example 1: Locking non-swappable memory and
  48.                  querying status .....................................18
  49.                  10.2. Example 2: Ejecting virtual media .............18
  50.                  10.3. Example 3: Reconfiguring VFloppy device .......19
  51.                  10.4. Example 4: Inserting virtual media ............19
  52.                  10.5. Example 5: Multiple operations ................19
  53.             11.0. ERROR MESSAGES .....................................20
  54.                  11.1. List of error messages ........................20
  55.             12.0. ACKNOWLEDGMENTS ....................................20
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.                                                                        2
  75.  
  76.  
  77.  
  78.        1.0. INTRODUCTION TO Super Virtual Disk
  79.        _________________________________________________________________
  80.  
  81.        1.1. What is Super Virtual Disk?
  82.  
  83.        Super Virtual Disk (SVDisk) is a 32-bit OS/2 device driver that
  84.        emulates either a removable Virtual Disk (VDisk) or a removable
  85.        Virtual Floppy (VFloppy) drive.  By using OS/2's virtual memory
  86.        management facility, SVDisk allows the entire contents of the
  87.        disk to be swapped out via the paging mechanism.  If the SVDisk
  88.        is frequently accessed, OS/2 will keep the most recently used
  89.        memory pages in RAM, and SVDisk will essentially behave like a
  90.        RAM Disk.
  91.  
  92.        1.2. Features of SVDisk
  93.  
  94.        -  Emulates multiple VDisk devices up to 16MB each even on a 4MB
  95.           system.  Cluster size is maintained at 512 bytes by varying
  96.           the size of the File Allocation Table (FAT) to reduce file
  97.           slack.
  98.        -  Emulates multiple VFloppy devices, ranging from 360KB to
  99.           2.88MB.  Virtual media support ranges from 160KB to 1.2MB for
  100.           5.25" VFloppy device, and from 720K to 2.88MB for 3.5" VFloppy
  101.           device.  If the VFloppy is a 3.5" device, automatic media
  102.           sensing is supported.
  103.        -  Media in SVDisk is removable.  This allows SVDisk to release
  104.           all memory used by the device back to the system.
  105.        -  Dynamic device reconfiguration is supported for the VFloppy
  106.           device.  If you load a 1.44MB VFloppy device, it can be
  107.           reconfigured later (without rebooting) as a 360KB, 720KB,
  108.           1.2MB or 1.44MB drive.
  109.        -  HPFS formatting program for SVDisk.  Mounting and unmounting
  110.           of HPFS onto SVDisks are supported.  HPFS diskette support
  111.           (diskette imaging program such as Disk eXPress is required.)
  112.        -  Special boot sector on VFloppy device to allow bypassing of
  113.           floppy boot if the image of the VFloppy is transferred to the
  114.           a real diskette using DISKCOPY.
  115.        -  Formatting and sector/track read/write are supported.
  116.        -  SVDisk allows locking of swappable memory into non-swappable
  117.           memory.  Once memory is locked, SVDisk will behave like a RAM
  118.           drive without paging delay.  The size of the lock can be
  119.           specified by the user, since locking the entire disk as non-
  120.           swappable can have serious performance impact to OS/2's
  121.           virtual memory operation.
  122.        -  A 32-bit command line utility and a 32-bit PM application are
  123.           included to provide complete control of all the capabilities
  124.           of SVDisk.
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.                                                                        3
  134.  
  135.  
  136.  
  137.        2.0. SYSTEM REQUIREMENTS
  138.        _________________________________________________________________
  139.  
  140.        Machines equipped with an Intel 386SX compatible or higher
  141.        processor.  OS/2 2.1 or higher, with minimum 4MB of memory.
  142.  
  143.  
  144.        3.0. COPYRIGHT NOTICE
  145.        _________________________________________________________________
  146.  
  147.        SVDisk (Super Virtual Disk)  Version 1.10  08/28/94
  148.        (c) Copyright 1994 by Albert J. Shan.  All Rights Reserved.
  149.  
  150.        No part of this program may be disassembled, modified or altered
  151.        by any means.
  152.  
  153.  
  154.        4.0. WARRANTY
  155.        _________________________________________________________________
  156.  
  157.        I, Albert J. Shan, make no warranties, expressed or implied,
  158.        including, but not limited to, merchantability or fitness for any
  159.        particular purpose.  In no event shall Albert J. Shan be liable
  160.        for indirect or consequential damages arising from the use of the
  161.        software program.
  162.  
  163.        You are free to redistribute this shareware package in its
  164.        entirety.  No part of this package may be included as part of a
  165.        commercial package.  If you have any questions about commercial
  166.        distribution of Super Virtual Disk, I can be contacted at:
  167.  
  168.        Albert J. Shan
  169.        4620 Granville Avenue
  170.        Richmond, B.C.
  171.        CANADA  V7C 1E4
  172.  
  173.        or via CompuServe, ID 70730,401
  174.        or via Internet, 70730.401@compuserve.com
  175.  
  176.  
  177.        5.0. COST OF Super Virtual Disk
  178.        _________________________________________________________________
  179.  
  180.        The user is granted a 30 days trial period, after which he or she
  181.        is required to register or discontinue the use of the product.
  182.        The cost of a single machine license is $30 U.S.  Please refer to
  183.        the file ORDER.FRM for details.
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.                                                                        4
  193.  
  194.  
  195.  
  196.        6.0. CONTENTS OF THIS PACKAGE
  197.        _________________________________________________________________
  198.  
  199.        The following files are included in this package:
  200.  
  201.            INSTALL.CMD     - Installation command file
  202.            SVDISK.SYS      - Super Virtual Disk device driver
  203.            SVDC.EXE        - Super Virtual Disk Control
  204.            PMSVDC.EXE      - PM version of SVDC
  205.            HFORMAT.EXE     - SVDisk HPFS formatting utility
  206.            HMOUNT.EXE      - HPFS mounting/unmounting utility for SVDisk
  207.            REREGSVD.EXE    - SVDisk re-registration program
  208.            KWIKTOOL.MSG    - English error message file, common to all
  209.                              EXE files.
  210.            SVDISK.MSG      - English message file for SVDISK.SYS and
  211.                              SVDC.EXE
  212.            PMSVDC.MSG      - English message file for PMSVDC.EXE
  213.            HFORMAT.MSG     - English message file for HFORMAT.EXE
  214.            HMOUNT.MSG      - English message file for HMOUNT.EXE
  215.            KWIKTOOL.GER    - German error message file, common to all
  216.                              EXE files.
  217.            SVDISK.GER      - German message file for SVDISK.SYS and
  218.                              SVDC.EXE
  219.            PMSVDC.GER      - German message file for PMSVDC.EXE
  220.            HFORMAT.GER     - German message file for HFORMAT.EXE
  221.            HMOUNT.GER      - German message file for HMOUNT.EXE
  222.            SVDISK.DOC      - This documentation
  223.            SVDISK.HST      - History of SVDisk
  224.            LICENSE.DOC     - License agreement for registered users
  225.            WARRANTY.DOC    - Warranty information for registered users
  226.            ORDER.FRM       - Order form
  227.            README          - Last minute information
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.                                                                        5
  252.  
  253.  
  254.  
  255.        7.0. INSTALLATION
  256.        _________________________________________________________________
  257.  
  258.        7.1. Quick start
  259.  
  260.        For automatic installation, please run INSTALL.CMD from an OS/2
  261.        command prompt.
  262.  
  263.  
  264.        7.1.1 Manual installation
  265.  
  266.        To manually install SVDisk, make a subdirectory called SVDISK,
  267.        and copy all the SVDisk files into \SVDISK.  Then edit your OS/2
  268.        CONFIG.SYS to include a line:
  269.  
  270.          DEVICE=D:\SVDISK\SVDISK.SYS
  271.  
  272.        Where D: is the drive where you created the SVDISK subdirectory.
  273.  
  274.        Add SVDISK to the path and dpath by appending D:\SVDISK at the
  275.        end of the PATH= and DPATH= statement in CONFIG.SYS.
  276.  
  277.        English language message files are used by default.  To use the
  278.        German language message files, rename all *.MSG files to *.ENG,
  279.        and rename all *.GER files to *.MSG.
  280.  
  281.        When you load SVDisk without any parameter as in the above
  282.        example, it will create a 1.44MB VFloppy device after you reboot
  283.        the system.
  284.  
  285.        When SVDisk is loaded, it does not put a media in the virtual
  286.        drive.  You have to manually insert it with SVDC or PMSVDC.  To
  287.        insert a virtual media after the system is booted, you type:
  288.  
  289.          SVDC X: /i:720
  290.  
  291.        Where X: is the drive letter of the SVDisk after boot.
  292.  
  293.        This will insert a 720KB virtual media into the drive.  If you
  294.        specify /i without any parameter, SVDC will insert a media with
  295.        the maximum capacity as defined by the SVDisk.sys device in
  296.        CONFIG.SYS.  To make media insertion automatic, simply edit
  297.        STARTUP.CMD on your OS/2 boot drive and add the SVDC line to it.
  298.  
  299.        Alternatively, you can insert the virtual media by using the
  300.        CALL= statement in CONFIG.SYS:
  301.  
  302.          CALL=D:\SVDISK\SVDC.EXE X: /i:720
  303.  
  304.  
  305.        If you want to install a 8MB VDisk type device, edit your
  306.        CONFIG.SYS by adding a line:
  307.  
  308.  
  309.  
  310.                                                                        6
  311.  
  312.  
  313.  
  314.          DEVICE=D:\SVDISK\SVDISK 8192 512
  315.  
  316.        This will create a 8MB VDisk device with 512 root directory
  317.        entries after you reboot the system.
  318.  
  319.  
  320.        7.1.2 Drive letter arrangement with CD-ROM drive
  321.  
  322.        Starting with OS/2 2.1, a DASD (Direct Access Storage Device)
  323.        Manager Driver (DMD) can be loaded as a device driver.  This is
  324.        the case for the CD-ROM device driver (OS2CDROM.DMD.)  This
  325.        arrangement allows another disk device driver to be positioned
  326.        before or after the CD-ROM drive.  To load a SVDisk with drive
  327.        letter preceeding the CD-ROM drive, locate the DEVICE= statement
  328.        containing OS2CDROM.DMD, and insert a SVDISK.SYS DEVICE=
  329.        statement before it.  To load a SVDisk after the CD-ROM, add the
  330.        SVDISK.SYS DEVICE= statement after OS2CDROM.DMD.
  331.  
  332.  
  333.        7.2. SVDisk.sys parameters
  334.  
  335.        SVDisk.sys can be loaded with no parameter to up to two
  336.        parameters.  To load SVDisk as a VFloppy device, you must specify
  337.        the size of the VFloppy device in KB.  For example:
  338.  
  339.          REM *** Load a 1.44MB VFloppy device ***
  340.          DEVICE=\SVDISK\SVDISK.SYS 1440
  341.  
  342.          REM *** Load a 2.88MB VFloppy device ***
  343.          DEVICE=\SVDISK\SVDISK.SYS 2880
  344.  
  345.          REM *** Load a 360KB VFloppy device ***
  346.          DEVICE=\SVDISK\SVDISK.SYS 360
  347.  
  348.        The possible values for VFloppy device are: 360, 720, 1200, 1440,
  349.        and 2880.  Since SVDisk defaults to a 1.44MB VFloppy device, the
  350.        1440 parameter can be omitted.
  351.  
  352.  
  353.        To load SVDisk as a VDisk device, you can specify up to two
  354.        parameters:
  355.  
  356.          DEVICE=\SVDISK\SVDISK.SYS ssss eeee
  357.  
  358.        Where ssss is the size of the VDisk device, and eeee is the root
  359.        directory entries for the device.  eeee is optional, and if you
  360.        do not specify it, SVDisk will default to 64 root directory
  361.        entries.
  362.  
  363.        The possible values for ssss are from 16 to 16384 (16KB to 16MB.)
  364.        The VDisk device will always round up the size into 16KB
  365.        boundary.  If you specify a 250KB VDisk device, it will be loaded
  366.        as 256KB.
  367.  
  368.  
  369.                                                                        7
  370.  
  371.  
  372.  
  373.  
  374.        The possible values for eeee are from 16 to 1024.  This value is
  375.        also rounded up in multiple of 16.
  376.  
  377.        If you load a VDisk device near the size of 4MB, it will attempt
  378.        to resolve the File Allocation Table (FAT) size as either 12-bit
  379.        or 16-bit.  In the case of conflict due to a large root directory
  380.        entries specification, SVDisk will slightly reduce the VDisk size
  381.        in favor of a 12-bit FAT for lower disk sector overhead in the
  382.        system area on the virtual media.
  383.  
  384.        SVDisk distinguishes a VDisk device from a VFloppy device solely
  385.        by the ssss (size) parameter.  If ssss is one of the possible
  386.        values for a VFloppy device, it will load itself as a VFloppy
  387.        device, and the second parameter is ignored.
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.                                                                        8
  429.  
  430.  
  431.  
  432.        8.0. CONTROLLING Super Virtual Disk
  433.        _________________________________________________________________
  434.  
  435.        Two programs are provided to control the SVDisks: SVDC.EXE and
  436.        PMSVDC.EXE.  PMSVDC.EXE is the Presentation Manager version of
  437.        SVDC.EXE.
  438.  
  439.  
  440.        8.1. Super Virtual Disk Control help screen
  441.  
  442.        Type SVDC at the OS/2 command prompt to receive this help screen:
  443.  
  444.        Super Virtual Disk Control (32-bit) Version 1.10  SHAREWARE VERSION
  445.        (c) Copyright 1994 Albert J. Shan.  All Rights Reserved.
  446.  
  447.        For use with Super Virtual Disk driver (SVDISK.SYS)
  448.  
  449.        Usage: SVDC [options] Drive:
  450.          [options]  /c        Fake a disk change.
  451.                     /e[f]     Eject media [f = forced eject].
  452.                     /i[:size] Insert media (if size is not specified, default
  453.                               to max. drive capacity.)  Size can only be
  454.                               specified for the VFloppy device.  Valid sizes are:
  455.                               160, 180, 320, 360, 720, 1.2, 1.44, 2.88.
  456.                     /l:size   Lock SVDisk in non-swappable memory.  Size
  457.                               is anywhere from 0 (KB) to the max. media size.
  458.                     /q        Query SVDisk status
  459.                     /r[:size] Reconfigure VFloppy device capacity (if size is not
  460.                               specified, default to max. drive capacity.)  Valid
  461.                               sizes are: 360, 720, 1.2, 1.44, 2.88.
  462.                     /u        Unlock non-swappable memory used by the SVDisk.
  463.                     Drive:    Drive letter of the Super Virtual Disk.
  464.  
  465.        NOTE: The drive must not contain any media before reconfiguring with /r.
  466.  
  467.        *** Note: parameters within [] are optional.
  468.  
  469.        If you specify the drive letter of a SVDisk and without
  470.        specifying any other options, SVDC will report the current status
  471.        of the SVDisk drive as if the Query Status switch (/q) is
  472.        specified.  For example:
  473.  
  474.           [C:\SVDISK]svdc j:
  475.  
  476.                    SVDISK.SYS Version:  1.10
  477.            Reconfigurable device size:  2.88MB
  478.                   Current device size:  2.88MB
  479.                    Current media size:  1.44MB
  480.           Non-swappable memory locked:   128KB
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.                                                                        9
  488.  
  489.  
  490.  
  491.        8.2. Options for SVDC
  492.  
  493.        /c        Fake a disk change.  This command will cause the SVDisk
  494.                  specified to appear as if it has been changed (ejected
  495.                  then reinserted.)  This is accomplished by changing the
  496.                  Volume Serial on the SVDisk.  If the program in
  497.                  question is looking for a change in Volume Label or a
  498.                  DOS program is looking for a change line bit in
  499.                  hardware, /c will not work.
  500.  
  501.        /e[f]     Eject media.  This will eject the media in the SVDisk,
  502.                  thereby releasing all memory, including locked memory
  503.                  (see /l and /u below) back to the system.  If a program
  504.                  is currently running off the SVDisk, you must specify
  505.                  /ef to force the disk to eject.  Further access to the
  506.                  SVDisk drive will cause a drive not ready error.
  507.  
  508.        /i[:size] Insert media.  If size is not specified, it will insert
  509.                  a media with the exactly same size as the SVDisk
  510.                  device.  For example, if the VFloppy is 2.88MB,
  511.                  specifying /i alone will insert a 2.88MB media into the
  512.                  SVDisk drive.  The optional size parameter is only
  513.                  applicable for a VFloppy device.  This allows different
  514.                  size media to be inserted into the VFloppy drive.  If
  515.                  the VFloppy is a 5.25" 360KB device, the possible
  516.                  values are: 160, 180, 320, and 360.  If the VFloppy is
  517.                  a 3.5" 1.44MB device, the possible values are: 720 and
  518.                  1.44.  Depending on the type of VFloppy device, the
  519.                  possible values are: 160, 180, 320, 360, 720, 1.2, 1.44
  520.                  and 2.88.
  521.  
  522.        /l:size   Lock virtual disk in non-swappable memory.  This will
  523.                  cause the virtual memory allocated by SVDisk to be
  524.                  locked in real memory pages, and they will be precluded
  525.                  from swapping out by the system.  The starting location
  526.                  of the lock is fixed at the beginning of the disk, at
  527.                  logical sector 0.  The size parameter is anywhere from
  528.                  0 to the maximum size of the media in the SVDisk.  It
  529.                  will be rounded up in 4KB in size as OS/2 can only lock
  530.                  memory in page boundary.  A size of 0 is equivalent to
  531.                  unlocking all the memory (see /u switch below.)  If a
  532.                  lock already exists on the SVDisk, it will be released,
  533.                  and the new lock size will be installed.  If there is
  534.                  not enough real memory for the lock, /l will fail, and
  535.                  at the same time, releasing any memory previously
  536.                  locked.
  537.  
  538.                  The OS/2 kernel will swap out other processes in order
  539.                  to make room for the lock.  This may take a while as
  540.                  pages are being swapped out.  The system will not be
  541.                  responsive when the kernel is into heavy paging
  542.                  activities.
  543.  
  544.  
  545.  
  546.                                                                       10
  547.  
  548.  
  549.  
  550.                  WARNING: Locking memory as non-swappable has the same
  551.                  effect as removing system memory on the hardware level.
  552.                  If you have a 8MB system, locking a few mega bytes of
  553.                  memory will make your system appear as if it has 4MB
  554.                  total system memory or less.  If the lock succeeds in
  555.                  locking large amount of memory, and the remaining non-
  556.                  swappable memory is extremely low, the OS/2 virtual
  557.                  memory paging mechanism will thrash.  Although the
  558.                  system is not crashed, it will be paging in and out so
  559.                  frequently that the system can no longer respond to the
  560.                  user's input.  You will need to press Ctrl-Alt-Del to
  561.                  recover in this case.  In general, it is recommended
  562.                  not to lock more that one quarter of total system
  563.                  memory as non-swappable for all SVDisk devices
  564.                  combined.  PMSVDC.EXE will limit the maximum of the
  565.                  lock to half of total system memory or the maximum disk
  566.                  size, whichever is less.  On the other hand, SVDC.EXE
  567.                  is designed to be flexible, so any lock size is
  568.                  possible.
  569.  
  570.        /q        Query SVDisk Status.  The following is a typical SVDisk
  571.                  report:
  572.  
  573.                           SVDISK.SYS Version:  1.10
  574.                   Reconfigurable device size:  2.88MB
  575.                          Current device size:  2.88MB
  576.                           Current media size:  1.44MB
  577.                  Non-swappable memory locked:   128KB
  578.  
  579.        /r[:size] Reconfigure VFloppy device capacity.  This switch is
  580.                  only applicable to the VFloppy device.  It allows
  581.                  dynamic device reconfiguration while the system is
  582.                  running.  Before you can reconfigure the VFloppy
  583.                  device, the media must first be ejected via the /i
  584.                  switch.  Specifying /r alone will reconfigure the
  585.                  VFloppy device to the maximum capacity as loaded by the
  586.                  device driver.  If SVDisk is loaded as a 1.2MB VFloppy
  587.                  device, you cannot reconfigure it to a 1.44MB or 2.88MB
  588.                  VFloppy device.  For example, if SVDisk is loaded as a
  589.                  3.5" 2.88MB VFloppy device, you can reconfigure it to
  590.                  5.25" 360KB, and 1.2MB VFloppy device.  You can also
  591.                  reconfigure it to 3.5" 720KB, 1.44KB and 2.88MB VFloppy
  592.                  device.
  593.  
  594.        /u        Unlock non-swappable memory used by the SVDisk.  This
  595.                  is the same as specifying /l:0.  Locked memory is
  596.                  released as being swappable.
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.                                                                       11
  606.  
  607.  
  608.  
  609.        8.3. PM Super Virtual Disk Control
  610.  
  611.        The Presentation Manager version of Super Virtual Disk Control
  612.        (PMSVDC.EXE) provides identical functions as SVDC.EXE with one
  613.        exception.  The lock function will limit the maximum available
  614.        memory for the lock as half of total system memory or maximum
  615.        media size, whichever is less.  This means if you have 16MB of
  616.        memory, and your VDisk device is 16MB, the largest memory size
  617.        you can lock is 8MB.  Many system board reserves up to 384K of
  618.        memory for shadow ROM and other purposes.  This effectively
  619.        reduces your total system memory.  Instead of 16MB (16384KB), you
  620.        get 16000KB total system memory under OS/2 and the maximum size
  621.        for the lock in this case is 8000KB.  The lock function also
  622.        warns you if you are locking more than one quarter of the total
  623.        system memory.  If you have multiple SVDisk devices, PMSVDC will
  624.        add up all memory locked by all SVDisk devices, subtract the
  625.        existing lock size on the current device, then add the new
  626.        requested size to see if it exceeds one quarter total system
  627.        memory limit.  In general, the total memory locked by all SVDisk
  628.        devices should be less than one quarter of the total system
  629.        memory to prevent OS/2 pager from thrashing.
  630.  
  631.  
  632.        8.4. Formatting SVDisk as HPFS
  633.  
  634.        NOTE: Using the High-Performance File System (HPFS) on SVDisk
  635.              requires special considerations and understanding of OS/2
  636.              and the HPFS file system.  THE ONLY SUPPORTED HPFS.IFS
  637.              DRIVERS ARE THE ONES IN OS/2 2.1 AND OS/2 2.99 PERFORMANCE
  638.              BETA 2.  HPFS.IFS in OS/2 2.11 (ServicePak XR06200) and
  639.              Performace Beta 1 are not supported due to a severe bug in
  640.              the HPFS driver.  If you are using OS/2 2.11, you must
  641.              copy the HPFS.IFS driver from the original OS/2 2.1
  642.              installation diskettes (diskette 1).  FAILURE TO USE THE
  643.              CORRECT HPFS DRIVER WILL CAUSE SYSTEM CRASH WHEN DATA IS
  644.              COPIED TO A HPFS SVDISK.
  645.  
  646.        Two utilities are included for handling HPFS on SVDisk:
  647.        HFORMAT.EXE and HMOUNT.EXE.  HFORMAT formats any SVDisk into HPFS
  648.        file system format.  It does it by temporary reconfiguring SVDisk
  649.        to appear like a non-removable disk, and then calls the OS/2
  650.        FORMAT.COM program to perform the HPFS formatting.  HFORMAT will
  651.        verify the drive to make sure it is a SVDisk before proceeding
  652.        with FORMAT.COM.  Once a SVDisk is formatted as HPFS, HFORMAT
  653.        will reconfigure SVDisk back to a removable disk device.  HFORMAT
  654.        requires the SVDisk media to be at least 1MB in size.  Since HPFS
  655.        requires approximately 200KB for the file system structures, it
  656.        is not pratical to have HPFS on a low capacity media.
  657.  
  658.        Before you can format a SVDisk as HPFS, the HPFS.IFS driver must
  659.        be installed.  If you are not using HPFS, you can install the
  660.        HPFS driver using Selective Install in the System Setup folder.
  661.  
  662.  
  663.  
  664.                                                                       12
  665.  
  666.  
  667.  
  668.        HPFS is usually installed as the first line in CONFIG.SYS.  A
  669.        typical HPFS.IFS line in CONFIG.SYS looks like the following:
  670.  
  671.            IFS=C:\OS2\HPFS.IFS /CACHE:128 /CRECL:4 /AUTOCHECK:C
  672.  
  673.        This specifies the HPFS Installable File System (IFS) with 128KB
  674.        cache; a caching threshold of 4KB, and automatic CHKDSK of C:
  675.        drive upon boot.  For performance reason, HPFS is not recommended
  676.        for system with 4MB of system memory.
  677.  
  678.        Once HPFS is installed, you can format a SVDisk into HPFS.  To do
  679.        so, type:
  680.  
  681.            HFORMAT D:
  682.  
  683.        where D: is the drive letter of the SVDisk drive.
  684.  
  685.        You can specify a volume label with HFORMAT:
  686.  
  687.            HFORMAT D: /v:SUPERDISK
  688.  
  689.        This will format the SVDisk D: as HPFS and assign SUPERDISK as
  690.        the volume label.
  691.  
  692.        If you want to format a HPFS SVDisk back to FAT, the easiest way
  693.        is to eject the media (/e), and insert (/i) a new one.  If you
  694.        wish to use FORMAT.COM to do the formatting, you must first
  695.        unmount HPFS from the SVDisk.
  696.  
  697.        Since HPFS is not designed for removable media, special media
  698.        handling is necessary to prevent HPFS from crashing.  HPFS is
  699.        mounted to the OS/2 File System whenever OS/2 detects a HPFS
  700.        drive during boot or after a successful HPFS disk format with
  701.        FORMAT.COM.  However, OS/2 does not provide a way for unmounting
  702.        a HPFS drive.  If you eject a HPFS media from a removable drive,
  703.        the HPFS driver will crash when it attempts to flush the disk
  704.        cache later or when you shutdown the operating system.  Since the
  705.        majority of the diskette drives have a mechanical eject button;
  706.        the media can be ejected without the control of the file system
  707.        driver.  This is the primary reason why HPFS does not support the
  708.        diskette drive.
  709.  
  710.        SVDC.EXE and PMSVDC.EXE have built-in HPFS unmounting capability.
  711.        When you eject a HPFS SVDisk, it will unmount the HPFS file
  712.        system before the disk is ejected, thereby preventing HPFS from
  713.        crashing.  If your HPFS SVDisk drive is in use by another process
  714.        (such as open files, or a process running off the HPFS SVDisk),
  715.        SVDC and PMSVDC eject function will disallow the removal of the
  716.        media.  This is done to prevent HPFS from crashing since there is
  717.        no way to flush or unmount HPFS if a process is running off of
  718.        that disk.
  719.  
  720.  
  721.  
  722.  
  723.                                                                       13
  724.  
  725.  
  726.  
  727.        If you wish to manually unmount HPFS off a SVDisk, you can do so
  728.        with HMOUNT.EXE.  HMOUNT has two modes of operation: mounting and
  729.        unmounting HPFS.  To unmount a HPFS SVDisk, do the following:
  730.  
  731.            HMOUNT D: /u
  732.  
  733.        Where D: is the drive letter of the HPFS SVDisk drive.
  734.  
  735.        Once HPFS is unmounted from the SVDisk, you can no longer access
  736.        the drive's contents.  At this point, OS/2 believes the current
  737.        file system on the SVDisk drive is FAT, and will not display the
  738.        contents of the drive correctly.  You can mount the drive back
  739.        with HMOUNT by typing:
  740.  
  741.            HMOUNT D:
  742.  
  743.        You can force HPFS to flush the cache by unmounting and then
  744.        remounting the disk.
  745.  
  746.        NOTE: It is the user's responsibility to make sure nothing is
  747.              written to an unmounted HPFS media before it is mounted as
  748.              HPFS again.  HPFS may crash if the file system structures
  749.              are severely damaged.
  750.  
  751.              Since HPFS provides superlative caching performace, the
  752.              use of non-swappable memory locking (/l in SVDC) is
  753.              unnecessary and should be avoided to conserve system
  754.              memory.
  755.  
  756.  
  757.        8.4.1 HPFS Diskettes
  758.  
  759.        Since a VFloppy can be formatted as HPFS, you can transfer, for
  760.        example, a 1.44MB HPFS VFloppy onto a real diskette.  The
  761.        supported HPFS diskette sizes are: 1.2MB, 1.44MB, and 2.88MB.
  762.        HFORMAT cannot format a real diskette as HPFS because the
  763.        IBM1FLPY.ADD/IBM2FLPY.ADD driver prevents the change of one
  764.        critical diskette parameter which is needed by HFORMAT.EXE and
  765.        OS/2's FORMAT.COM.
  766.  
  767.        DISKCOPY cannot be used to transfer HPFS VFloppy to a real
  768.        diskette because it expects both the source and target file
  769.        systems to be FAT.  You will need to use a Diskette Imaging
  770.        program such as Disk eXPress (DXP.)  Disk eXPress Version 2.33 or
  771.        later is required.  Shareware version of Disk eXPress can be
  772.        found on most major OS/2 BBSes.  To image a HPFS VFloppy, you
  773.        will need to save the entire contents of the disk.  With Disk
  774.        eXPress, you can do this by:
  775.  
  776.            DXP32 D: HPFS1440 /a
  777.  
  778.        Where D: is the 1.44MB HPFS SVDisk drive (VFloppy device), and
  779.        HPFS1440 is the self-extracting diskette image file.  The /a
  780.  
  781.  
  782.                                                                       14
  783.  
  784.  
  785.  
  786.        switch (read the entire diskette) is not really required, as Disk
  787.        eXPress detects the HPFS VFloppy as a non-DOS media, and will
  788.        automatically read the entire diskette.
  789.  
  790.        Once the diskette image is created, you can restore it onto a
  791.        real diskette.  You can do this by typing:
  792.  
  793.            HPFS1440 A:  (if the diskette is formatted)
  794.  
  795.        OR
  796.  
  797.            DXP32 HPFS1440.EXE A: /f  (if the diskette is unformatted)
  798.  
  799.        In order to use a HPFS diskette, you must first mount the media
  800.        for use.  This is accomplished with HMOUNT.
  801.  
  802.            HMOUNT A:
  803.  
  804.        Normally, OS/2 will mount a HPFS disk if it detects it to be HPFS
  805.        when you first access it.  This means if a HPFS diskette is
  806.        inserted into the drive and accessed without HMOUNT, OS/2 will
  807.        recognize it, and access the contents correctly.  However, this
  808.        is only true when you are dealing with 1.2MB and 1.44MB drives.
  809.        With the 2.88MB drives, it is imperative that you use HMOUNT to
  810.        mount a 1.44MB HPFS diskette.  HMOUNT will temporary reconfigure
  811.        your floppy hardware to appear as a 1.44MB diskette drive.  This
  812.        is necessary to allow HPFS to function correctly for the 1.44MB
  813.        media in the 2.88MB diskette drive.  When you unmount a 1.44MB
  814.        HPFS diskette from a 2.88MB drive, the drive parameter is not
  815.        restored, and OS/2 believes you still have a 1.44MB diskette
  816.        drive.  In order to restore diskette hardware parameters to
  817.        2.88MB, a 2.88MB HPFS diskette must be prepared in advance using
  818.        a 2.88MB HPFS SVDisk.  To restore the 2.88MB hardware status, you
  819.        must mount then unmount a 2.88MB HPFS diskette.  To do so, insert
  820.        the 2.88MB HPFS diskette, perform a HMOUNT to mount the diskette
  821.        and then perform a HMOUNT /u to unmount HPFS from the drive.
  822.  
  823.        CAUTION:  Make sure a HPFS diskette is unmounted with HMOUNT /u
  824.                  before ejecting it from the diskette drive.  Failure to
  825.                  do so will cause HPFS to crash when it attempts to
  826.                  flush the cache or during a system shutdown.  If you
  827.                  accidentially ejected a HPFS diskette, you must
  828.                  reinsert it into the drive immediately, and execute
  829.                  HMOUNT /u to unmount HPFS.  Failure to do so before
  830.                  HPFS has a chance to update the media will lead to
  831.                  system crash.
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.                                                                       15
  842.  
  843.  
  844.  
  845.        8.4.2 HPFS386 on IBM LAN Server Advanced Edition
  846.  
  847.        SVDisk does not support HPFS386 on IBM LAN Server Advanced
  848.        Edition.  This particular version of HPFS requires Scatter/Gather
  849.        support in the device driver level.  SVDisk currently does not
  850.        support Scatter/Gather.  Formatting SVDisk as HPFS under HPFS386
  851.        will lead to system crash.
  852.  
  853.  
  854.        8.5. Diskette boot bypass using VFloppy
  855.  
  856.        SVDisk contains a special boot sector under FAT which can be used
  857.        to bypass a real floppy boot.  You can do this by transferring
  858.        the image of a VFloppy device with DISKCOPY to a real diskette.
  859.        If you leave the diskette in drive A:, upon system reboot, you
  860.        will get the following message on the screen:
  861.  
  862.        Transferring system boot from diskette to hard drive...
  863.  
  864.        And the boot sequence will be transferred to the hard drive.  If
  865.        you have OS/2 Boot Manager installed, you will see the Boot
  866.        Manager at this point.
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.                                                                       16
  901.  
  902.  
  903.  
  904.        9.0. PROGRAMMING INFORMATION
  905.        _________________________________________________________________
  906.  
  907.        When SVDisk is used as a VFloppy device, it tries to emulate a
  908.        real floppy drive as much as possible.  However, this emulation
  909.        is not 100%.  If you write a program against the behavior of a
  910.        real floppy drive, it will almost certainly work with SVDisk.
  911.        The converse is not always true.  This is because SVDisk makes
  912.        certain assumptions to simplify many of the internal operations
  913.        which are true for a virtual device.  The common pitfall is to
  914.        assume reading and writing to a floppy device are always slower
  915.        than other computational threads.  If a multithreaded OS/2
  916.        application is designed with the above assumption, it will almost
  917.        certainly fail because the disk read/write operations are much
  918.        faster than the program has expected.
  919.  
  920.        SVDisk supports the following IOCtl Category 8 logical disk
  921.        commands (in hex):
  922.  
  923.        00   Lock drive
  924.        01   Unlock drive
  925.        02   Redetermine media
  926.        04   Begin format
  927.        20   Block removable
  928.        21   Query logical map
  929.        43   Set device parameters (the changing the BPB of the device is
  930.             not supported)
  931.        44   Read track
  932.        64   Write track
  933.        65   Verify track
  934.        45   Format and verify track
  935.        60   Query media sense
  936.        63   Query device parameters
  937.  
  938.        Please refer to OS/2 2.x SDK (Software Development Kit) on
  939.        programming the IOCtl interface.
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.                                                                       17
  960.  
  961.  
  962.  
  963.        10.0. EXAMPLES
  964.        _________________________________________________________________
  965.  
  966.        The following examples assume you have the following lines
  967.        installed in CONFIG.SYS:
  968.  
  969.        DEVICE=D:\SVDISK\SVDISK.SYS 8192 512
  970.        DEVICE=D:\SVDISK\SVDISK.SYS 2880
  971.        CALL=D:\SVDISK\SVDC.EXE H: /i
  972.        CALL=D:\SVDISK\SVDC.EXE I: /i:1.44
  973.  
  974.        The first SVDisk is an 8MB VDisk device with 512 root directory
  975.        entries, with drive letter 'H' assigned to it by OS/2.  The
  976.        second SVDisk is a 2.88MB VFloppy device, initially loaded with a
  977.        1.44MB virtual media, and is assigned as drive 'I'.
  978.  
  979.  
  980.        10.1. Example 1: Locking non-swappable memory and querying status
  981.  
  982.        You would like to lock the first 600K of SVDisk H: in non-
  983.        swappable memory, and query the status at the same time:
  984.  
  985.          SVDC H: /l:600 /q
  986.  
  987.        And you get the following report:
  988.  
  989.                 SVDISK.SYS Version:  1.10
  990.         Reconfigurable device size:  8192KB
  991.                Current device size:  8192KB
  992.                 Current media size:  8192KB
  993.        Non-swappable memory locked:   600KB
  994.  
  995.  
  996.        10.2. Example 2: Ejecting virtual media
  997.  
  998.        You can eject the virtual media in SVDisk so that all memory used
  999.        (including locked memory) is returned to the operating system:
  1000.  
  1001.          SVDC I: /e
  1002.  
  1003.        If the SVDisk is in used by a process (ie: a running program,
  1004.        open files, etc.), you'll receive an error message:
  1005.  
  1006.          KWT0131: Drive I: is not ready or in use by another process.
  1007.  
  1008.        You can force eject the virtual media by specifying /ef:
  1009.  
  1010.          SVDC I: /ef
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.                                                                       18
  1019.  
  1020.  
  1021.  
  1022.        10.3. Example 3: Reconfiguring VFloppy device
  1023.  
  1024.        You want to change the VFloppy drive I: into a 1.2MB 5.25"
  1025.        device:
  1026.  
  1027.          SVDC I: /r:1.2
  1028.  
  1029.  
  1030.        10.4. Example 4: Inserting virtual media
  1031.  
  1032.        You want to insert a 360KB virtual media into drive I:, which has
  1033.        just been reconfigured to a 1.2MB VFloppy drive:
  1034.  
  1035.          SVDC I: /i:360
  1036.  
  1037.  
  1038.        10.5. Example 5: Multiple operations
  1039.  
  1040.        You can combine example 3 and 4 plus locking and querying all in
  1041.        one step:
  1042.  
  1043.          SVDC I: /r:1.2 /i:360 /l:180 /q
  1044.  
  1045.        And you'll receive this status report:
  1046.  
  1047.                 SVDISK.SYS Version:  1.10
  1048.         Reconfigurable device size:  2.88MB
  1049.                Current device size:   1.2MB
  1050.                 Current media size:   360KB
  1051.        Non-swappable memory locked:   180KB
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.                                                                       19
  1078.  
  1079.  
  1080.  
  1081.        11.0. ERROR MESSAGES
  1082.        _________________________________________________________________
  1083.  
  1084.        11.1. List of error messages
  1085.  
  1086.        The following is a list of major error messages returned by
  1087.        SVDC.EXE.  The error return code is also displayed as part of the
  1088.        prefix in the error message:
  1089.  
  1090.        SVDnnnn: Error message text
  1091.  
  1092.        Where nnnn is the error return code.
  1093.  
  1094.        SVD0016: Drive X: is not a Super Virtual Disk.
  1095.        SVD0017: SVDISK.SYS has a higher revision level.
  1096.        SVD0018: Invalid media size.
  1097.        SVD0019: Cannot eject because the file system on drive is HPFS and
  1098.                 is currently in use by another process.
  1099.        SVD0020: Unable to eject Super Virtual Disk due to memory deallocation
  1100.                 error.
  1101.        SVD0021: Unable to insert Super Virtual Disk due to memory allocation
  1102.                 error.
  1103.        SVD0022: No media in drive.
  1104.        SVD0023: You cannot insert two media in the drive.
  1105.        SVD0024: Incorrect size specified.
  1106.        SVD0025: System failed to lock memory as non-swappable.
  1107.        SVD0026: System failed to unlock non-swappable memory.
  1108.        SVD0027: No non-swappable memory locked by the Super Virtual Disk.
  1109.        SVD0028: Cannot reconfigure Super Virtual Disk with a media in the Drive.
  1110.        SVD0029: Only VFloppy type device can be reconfigured.
  1111.  
  1112.  
  1113.        12.0. ACKNOWLEDGMENTS
  1114.        _________________________________________________________________
  1115.  
  1116.        German message files translation was performed by Peter Freitag.
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.                                                                       20